Como hacer unit testing en .net usando el framework de testing MSTest.
Partimos de un programa Calculator con el siguiente código:
using CalcLib;
Calculator calculator = new();
Console.WriteLine(calculator.Add(3, 7));
La clase Calculator está definida así:
namespace CalcLib
{
public class Calculator
{
public double Add (int num1, int num2)
{
return num1 + num2;
}
}
}
A continuación crearemos un test para probar la función Add de la clase Calculator.
Creamos un nuevo proyecto con la plantilla MSTest Test Project:
Por defecto el test se crea con el siguiente código:
A continuación lo que tenemos que hacer es añadir la referencía de la clase que queremos probar en el test al proyecto del test, seleccionamos el proyecto y hacemos click en Project>Add Project Reference:
A continuación añadimos el namespace en la clase del test:
using CalcLib;
y en el método del test añadimos el test en si:
Calculator calculator = new ();
Assert.AreEqual(9, calculator.Add(2, 7));
El código final de la clase del test nos queda tal que así:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using CalcLib;
namespace CalcTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
Calculator calculator = new ();
Assert.AreEqual(9, calculator.Add(2, 7));
}
}
}
Ya tendríamos nuestro test listo comprobando que la suma de 2 y 7 da 9, eso es lo que debería de devolver la funcion Add, para ejecutar el test y comprobar que es correcto nos vamos a Test > Run All Test, si el test se ejecuta correctamente se mostrará en verde:
Si forzamos el test para que falle veremos algo como esto, indicandonos el valor obtenido y el esperado:
C# | .Net | test